package ink.ykb.redissondemo.config.lock;

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.redisson.config.SingleServerConfig;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;

@Configuration
public class RedissonConfig {

	@Value("${spring.redis.url}")
	private String address;
	@Value("${spring.redis.password:}")
	private String password;
	@Value("${spring.redis.database}")
	private Integer database;
	
	
	/**
	 * 获取RedissonClient连接类
	 */
	@Bean
	public RedissonClient getClient() {
		Config config = new Config();
		SingleServerConfig setDatabase = config.useSingleServer()
				.setAddress(address)
				.setDatabase(database);

		if(!StringUtils.isEmpty(password)) {
			setDatabase.setPassword(password);
		}

		return Redisson.create(config);
	}

}
